This invention relates generally to software for use in editing and delivering print jobs to a printer and, more particularly, to a system for capturing print jobs containing pass-through data. The invention includes a method for capturing print jobs containing pass-through data, and also an apparatus and computer program product for capturing print jobs containing pass-through data.
A collection of information directed from a computer to a printing device is commonly referred to as a print job. The information may be in the form of text or graphics, and the printing device to which the print job may be directed may comprise a printer or display terminal, for example. Output resources, including printers, display terminals, and any other devices to which a print job may be directed, will be referred to in this disclosure simply as xe2x80x9cprintersxe2x80x9d. Computer programs or applications which may produce print jobs commonly include a user interface such as a print dialog box graphical interface through which the application user may order and, to some extent, control print jobs. However, the printer user interface provided in many software applications often provides only minimal features to control the print job. In particular, the printer control interface provided in many software applications does not expose, or provide access to, advanced capabilities which may be available in certain printers. For this reason, many of the more advanced capabilities which may be built into printers go unnoticed and unused by a majority of software users.
Many software applications direct print jobs to a printer through specialized program code referred to as a driver. The printer driver translates the data representing the print job into a format which the printer can understand. A more recent class of printing software allows print jobs to be edited outside of a printer driver and provides more options to control the print job. Software in this class may be referred to as a xe2x80x9cjob editing and delivery systemxe2x80x9d. Job editing and delivery systems are of particular interest to printer manufacturers because the software makes advanced printer capabilities visible or available to a user.
A job editing and delivery system captures a print job from a software application and provides the user with the opportunity to interactively modify the printer settings. Users may choose print job features such as xe2x80x9cn-upxe2x80x9d (xe2x80x9cnxe2x80x9d page images from a print job on one sheet), watermarks, and booklet printing, for example. After the user has finished choosing the desired print job settings, the print job is then sent to a printer the user has designated.
One option available in certain software applications which create print jobs allows certain designated data to pass through to the printer for printing without modification by the operating system or printer driver. This option is referred to as xe2x80x9cpass-throughxe2x80x9d, and the data which passes-through to the printer without modification by the operating system or printer driver is referred to as xe2x80x9cpass-through dataxe2x80x9d. Although data other than pass-through data included in a print job is translated either by operating system components or the printer driver, the pass-through data remains untranslated and is simply directed to the printer in its untranslated state.
Since pass-through data may comprise any data designated by the user, the pass-through feature must be used carefully. Care must normally be taken to ensure that the pass-through data is compatible with the accompanying data included in the print job. For example, including pass-through PostScript(copyright) data in a print job directed to a PCL printer will cause the data stream to become invalid since the PCL printer will be unable to interpret the PostScript(copyright) commands included in the PostScript(copyright) data. For this reason, applications which allow pass-through commonly provide an arrangement for determining the printer language or technology type before issuing pass-through data to the printer. If the printer technology type is incompatible with the proposed pass-through data, the application may notify the user and may send the print job in some modified form without the desired pass-through data. Also, not all printer drivers support or allow pass-through. Thus, applications which allow pass-through commonly provide an arrangement for determining whether the target printer driver supports pass-through before issuing a job which includes pass-through data.
Current job editing and delivery systems commonly do not support pass-through. Thus, users desiring the ability to include pass-through data in print jobs may not have access to the advantages available in job editing and delivery systems.
It is an object of the invention to provide a job capture subsystem which supports pass-through in a job editing and delivery system. The invention includes a method of capturing a print job in a job editing and delivery system, as well as an apparatus and computer program product for capturing a print job in a job editing and delivery system.
The invention utilizes a unique printer driver arrangement for print jobs delivered to a printer through a job editing and delivery system. The driver arrangement includes computer program code which maintains a plurality of driver-type elements. These driver-type elements can be used to produce any one of a plurality of driver type responses. Each driver type response is specific to a particular printer technology type such as PCL or PostScript(copyright), for example. Thus, the driver arrangement according to the invention is capable of presenting itself as any of a number of different printer drivers. In particular, the present driver arrangement is capable of presenting itself as a type of driver that can handle the particular pass-through data in a print job.
Before a print job which includes pass-through data is sent to the job editing and delivery system, the application from which the job originates queries the present driver just as in prior art arrangements. That is, the application queries the driver to make sure the driver can support the printer technology type of pass-through data in the print job. This query is in the form of print job communications to the driver. In response to the print job communications, the driver arrangement according to the invention provides an appropriate driver type response using the various driver-type elements maintained by the driver. The appropriate driver type response is the correct response for the pass-through data in the print job. Thus, the driver according to the invention reports or presents itself as the appropriate driver for the printer technology type of the pass-through data, regardless of the type of pass-through data and regardless of the type of printer which may be designated for the print job.
After the present driver arrangement provides the appropriate driver type response to the application originating the print job, the data making up the print job is sent to the driver arrangement and the arrangement translates the original print job data into an intermediate representation. This intermediate representation of the print job includes translated data and untranslated data. The translated data comprises data representing portions of the print job other than the pass-through data, while the untranslated data represents buffers of pass-through data.
The present print job capture arrangement also includes a storage arrangement for storing the intermediate representation until needed to draw an image in the print job to a designated printer. In the preferred form of the invention, the job capture arrangement includes a driver output processor for directing the actual printing of the print job. In addition to directing the storage of the intermediate representation, the program code which implements the driver output processor may create a page object and/or a page object set for the print job. These objects serve as interfaces to the data stored as the intermediate representation and to the other information needed to draw the print job or portions of the job to a printer.
In one form of the invention a user specifies a desired printer technology setting to set the driver arrangement to respond with the appropriate driver type response. The desired printer technology setting is specified through a technology specifying arrangement which may be associated with a user interface for the job editing and delivery system. Through the technology specifying arrangement, the user may choose the desired printer technology setting from among a plurality of stored printer technology settings. Once the desired printer technology setting is specified, the printer driver according to the invention responds to any print job communications with a driver type response appropriate to the printer technology associated with the specified printer technology setting.
The job capture arrangement according to the present invention further includes a plurality of data handlers and a data handler selection arrangement. The data handlers each include computer program code stored in a suitable data handler storage arrangement. Each data handler is used to direct the printing of a particular type of pass-through data to a particular type of printer. The data handler selection arrangement associates a particular data handler with pass-through data of the corresponding type.
In the preferred form of the invention, the data handler selection arrangement includes scanning program code which causes each data handler to scan the pass-through data in a print job and report a level of support for that pass-through data. Each data handler is associated with a different level of support for a particular type of pass-through data. One data handler after another scans the pass-through data until a particular data handler identifies itself as specifically supporting the particular pass-through data. If no data handler identifies itself as specifically supporting the pass-through data, a data handler which identifies itself as generically supporting the pass-through data is assigned by the selection arrangement to direct the printing of that pass-through data.
Depending upon a number of factors, some data handlers may not support features normally available through the job editing and delivery system. That is, a data handler assigned to handle certain pass-through data may be unable to direct the printing of pass-through data consistent with certain features available in the job editing and delivery system. As used in this disclosure, a xe2x80x9cfeaturexe2x80x9d available in the job editing and delivery system comprises a printing function such as xe2x80x9cn-upxe2x80x9d. A xe2x80x9ccapabilityxe2x80x9d of a printing resource comprises a process that the resource can perform such as scaling or rotation for example. In the preferred form of the invention, each data handler reports capability support to the job editing and delivery system. The job editing and delivery system uses the capability support information to indicate to the user whether a feature normally available through the system is supported for the particular print job in which the pass-through data is included. The indication may be provided through a graphical user interface associated with the job editing and delivery system.
It will be appreciated that the various elements in the apparatus according to the invention are implemented through a suitable data processing system or computer under the control of computer program code. Also, the method steps set out in the following claims are performed through the hardware associated with the data processing system.
The invention facilitates the editing and delivery of print jobs through a job editing and delivery system regardless of the type of printer which may be designated. The print job, including the pass-through data included in the job, may be captured for editing and delivery regardless of any incompatibility between the pass-through data and the designated printer. An appropriate data handler then facilitates drawing the pass-through data to the designated printer even if the printer utilizes a technology type different from the technology type of the pass-through data.
These and other objects, advantages, and features of the invention will be apparent from the following description of the preferred embodiments, considered along with the accompanying drawings.